//package com.spider.im.chat.message;
//
//import com.google.protobuf.ByteString;
//import com.google.protobuf.InvalidProtocolBufferException;
//import com.google.protobuf.Message;
//import com.google.protobuf.Parser;
//import com.spider.im.chat.message.MessageStrategy;
//import io.netty.channel.ChannelHandlerContext;
//
//public class HandlerAdapter<T extends Message> {
//    private final Class<T> messageClass;
//    private final Parser<T> parser;
//    private final MessageStrategy<T> handler;
//
//    public HandlerAdapter(Class<T> messageClass, Parser<T> parser, MessageStrategy<T> handler) {
//        this.messageClass = messageClass;
//        this.parser = parser;
//        this.handler = handler;
//    }
//
//    public Class<T> getMessageClass() {
//        return messageClass;
//    }
//
//    public Parser<T> getParser() {
//        return parser;
//    }
//
//    public MessageStrategy<T> getHandler() {
//        return handler;
//    }
//
//    public void invoke(ChannelHandlerContext ctx, ByteString payload) throws InvalidProtocolBufferException {
//        T msg = parser.parseFrom(payload);
//        handler.handle(ctx, msg);
//    }
//}
